<?php

class EncontroController extends Zend_Controller_Action
{

 public function init()
    {
        $this->view->headScript()->appendFile('/js/forms/forms.js');
        
    	$this->_db = new Application_Model_DbTable_Encontro();
    	$this->dbParoquia = new Application_Model_DbTable_Paroquia();
    	
    	$this->view->pagMenu = "encontro";
    	
    	$this->usrLogado = Zend_Auth::getInstance()->getIdentity();
    	
    	$this->_flashMessenger = $this->_helper->getHelper('FlashMessenger');
    	$this->view->messages = $this->_flashMessenger->getMessages();
    }

    public function indexAction()
    {
    	$where = "e.id_paroquia = ".$this->usrLogado->getIdParoquia();
    	if($this->usrLogado->getRoleId() == "admin"){
        	$where = "1";
        }
    	$dados = $this->_db->getListaEncontros($where);
    	$this->view->dados = $dados;
    }

    public function adicionarAction()
    {
    	if($this->getRequest()->isPost()){
    		//action de inserir
    		$idParoquia = $this->usrLogado->getIdParoquia();
    		if($this->usrLogado->getRoleId() != "admin"){
	    		$idParoquia = $this->getRequest()->getPost("id_paroquia");
    		}
    		$dados = array(
    			'id_encontro' => null,
    			'id_paroquia' => $idParoquia,
    			'edicao' => $this->getRequest()->getPost("edicao"),
    			'ano' => $this->getRequest()->getPost("ano"),
    		);
    		$res = $this->_db->insert( $dados );
    		$this->_helper->FlashMessenger("Registro inserido com sucesso!");
	    	header("Location: /encontro/");
	    	exit;
    	}else{
    		//form de inserir
    		$this->view->edita = false;
    		if($this->usrLogado->getRoleId() == "admin"){
	    		$this->view->minhaParoquia = false;
    			$this->view->arrParoquia = $this->dbParoquia->fetchAll();
    		}else{
	    		$this->view->minhaParoquia = true;
	    		$this->view->arrParoquia = $this->usrLogado->getIdParoquia();
	    		$proxEdicao = $this->_db->getProximoEdicaoParoquia($this->usrLogado->getIdParoquia());
	    		$this->view->proxEdicao = $proxEdicao->edicao;
	    		$this->view->proxEdicaoAno = $proxEdicao->ano;
    		}
    	}
    	$this->renderScript('encontro/form.phtml');
    }

    public function editarAction()
    {
    	if($this->getRequest()->isPost()){
    		//action de editar
	        $dados = array(
		        'edicao' => $this->getRequest()->getPost("edicao"),
				'ano' => $this->getRequest()->getPost("ano"),
        		'id_paroquia' => $this->getRequest()->getPost("id_paroquia")
	        );
	        
	        $this->_db->update( $dados, 'id_encontro = '.$this->getRequest()->getPost("id_encontro") );
	        $this->_helper->FlashMessenger("Registro alterado com sucesso!");
    		header("Location: /encontro/");
    		exit;
    	}else{
    		//form de editar
	    	$this->view->edita = true;
    		$this->view->dados = $this->_db->fetchRow( 'id_encontro = '.$this->getRequest()->getParam("id") );
    		$this->view->arrParoquia = $this->dbParoquia->fetchAll();
    	}
    	$this->renderScript('encontro/form.phtml');
    }

    public function deleteAction()
    {
    	if($this->getRequest()->getParam("id") > 0){
	    	//verifica se é responsável pelo encontro a ser modificado
	    	if($this->_db->eResponsavel($this->getRequest()->getParam("id"), $this->usrLogado->getIdParoquia()) || $this->usrLogado->getRoleId() == "admin"){
		    	$this->_helper->layout()->disableLayout();
		    	$this->_helper->viewRenderer->setNoRender(true);
		    	
	        	//$this->_db->delete( 'id_encontro = '.$this->getRequest()->getParam("id") );
	    		$this->_helper->FlashMessenger("Registro deletado com sucesso!");
		    	header("Location: /encontro/");
		    	exit;
		    	
	    	}else{
	    		$this->renderScript('error/error.phtml');
	    	}
    	}else{
    		$this->_helper->FlashMessenger("Algum problema ocorreu, tente novamente!");
    		header("Location: /encontro/");
    		exit;
    	}
    }


}


